데이터베이스 스키마
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
데이터베이스 스키마는 데이터베이스의 구조와 제약 조건을 정의하는 청사진이다. 스키마 통합의 이상적인 요구 사항으로는 중복 보존, 확장된 중복 보존, 정규화, 최소성이 있으며, 여러 데이터베이스를 통합할 때 중복 정보를 중재 스키마로 표현할 수 있다. 오라클 데이터베이스에서 스키마는 논리적인 데이터베이스 스토리지 구조로, 테이블, 뷰, 시퀀스 등 스키마 객체의 모음으로 구성된다. 또한, 데이터베이스 스키마는 3층 스키마 접근 방식을 통해 개념, 논리, 물리 스키마로 나뉘어 데이터베이스를 설계하고 관리하는 데 사용된다.
더 읽어볼만한 페이지
- 자료 구조 - 라우팅 테이블
라우팅 테이블은 네트워크에서 데이터 전송 시 최적 경로를 결정하는 핵심 데이터베이스로, 라우터가 목적지 IP 주소를 기반으로 다음 홉을 결정하며 직접 연결 및 원격 네트워크 경로 정보를 저장하고 동적 라우팅 또는 수동 설정으로 관리된다. - 자료 구조 - 스택
스택은 후입선출(LIFO) 원칙에 따라 데이터를 관리하는 추상 자료형으로, push 연산으로 데이터를 쌓고 pop 연산으로 가장 최근 데이터를 제거하며, 서브루틴 호출 관리, 수식 평가, 백트래킹 등에 활용된다. - 데이터 모델링 - 빌딩 정보 모델링
빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다. - 데이터 모델링 - 저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다. - 데이터 관리 - 데이터 센터
데이터센터는 컴퓨터 시스템 및 관련 장비와 지원 인프라를 수용하는 시설로, 기술 발전에 따라 규모와 중요성이 확대되었으며, 에너지 효율과 보안을 고려하여 설계 및 운영되고, TIA-942 표준에 따른 티어 분류와 친환경 기술 도입이 이루어지고 있다. - 데이터 관리 - 정보 아키텍처
정보 아키텍처는 정보 시스템 및 정보 기술 분야에서 공유 정보 환경의 구조적 설계를 의미하며, 웹사이트, 소프트웨어 등의 구성과 레이블링을 포함하여 검색 용이성과 사용성을 지원하고, 도서관정보학에 기원을 두고 있다.
데이터베이스 스키마 |
---|
2. 스키마 통합의 이상적인 요구 사항
생성되는 스키마의 세부 구조에 영향을 미치는 이상적인 요구 사항은 다음과 같다. 모든 조건을 충족할 필요는 없지만, 다음 네 가지 요구 사항이 가장 이상적이다.
- '''중복 보존:''' 입력 매핑에 지정된 각 중복 요소는 데이터베이스 스키마 관계에도 존재해야 한다.
- '''확장된 중복 보존:''' 소스의 중복 요소와 관련된 소스별 요소는 데이터베이스 스키마로 전달된다.
- '''정규화:''' 소스 데이터의 독립적인 개체와 관계는 데이터베이스 스키마의 동일한 관계에 함께 그룹화되어서는 안 된다. 특히, 독립적인 개체 또는 관계를 함께 배치하는 경우 소스별 스키마 요소는 중복 스키마 요소와 함께 그룹화되어서는 안 된다.
- '''최소성:''' 데이터베이스 스키마의 요소가 삭제되면 해당 데이터베이스 스키마는 이상적이지 않다.
2. 1. 중복 보존
입력 매핑에 지정된 각 중복 요소는 데이터베이스 스키마 관계에도 존재해야 한다.2. 2. 확장된 중복 보존
소스의 중복 요소와 관련된 소스별 요소는 데이터베이스 스키마로 전달된다.2. 3. 정규화
소스 데이터의 독립적인 개체와 관계는 데이터베이스 스키마의 동일한 관계에 함께 그룹화되어서는 안 된다. 특히, 독립적인 개체 또는 관계를 함께 배치하는 경우 소스별 스키마 요소는 중복 스키마 요소와 함께 그룹화되어서는 안 된다.2. 4. 최소성
데이터베이스 스키마의 요소가 삭제되면 해당 데이터베이스 스키마는 이상적이지 않다.3. 스키마 통합 예시
데이터 통합을 위해 Go-travel과 Ok-flight 데이터베이스를 합치는 중재 스키마가 필요하다고 가정해 보자.
Go-travel은 두 개의 관계를 가지고 있다.
Go-flight(flight-number, time, meal(yes/no)) |
Go-price(flight-number, date, price) |
Ok-flight는 하나의 관계만 가지고 있다.
Ok-flight(flight-number, date, time, price, nonstop(yes/no)) |
Go-travel과 Ok-flight 스키마의 중복 정보를 중재 스키마로 표현할 수 있다.
Flight(flight-number, date, time, price) |
4. 특정 데이터베이스 시스템에서의 스키마
오라클 데이터베이스와 Microsoft SQL Server에서 스키마는 데이터베이스 객체를 구성하고 관리하는 데 중요한 역할을 한다. 오라클 데이터베이스는 각 사용자에게 별도의 스키마를 할당하는 반면, Microsoft SQL Server는 기본적으로 dbo 스키마를 사용한다.[2][5]
4. 1. 오라클 데이터베이스
오라클 데이터베이스에서 '''스키마 객체'''는 논리적인 데이터베이스 스토리지 구조이다.[1]오라클 데이터베이스는 각 데이터베이스 '''사용자'''에게 별도의 스키마를 연결한다.[2] 스키마는 스키마 객체의 모음으로 구성된다. 스키마 객체의 예는 다음과 같다.
반면에, 비-스키마 객체는 다음을 포함할 수 있다:[3]
- 사용자
- 롤
- 컨텍스트
- 디렉터리 객체
스키마 객체는 정보를 저장하는 디스크의 물리적 파일과 일대일 대응 관계를 갖지 않는다. 그러나, 오라클 데이터베이스는 스키마 객체를 데이터베이스의 테이블스페이스 내에 논리적으로 저장한다. 각 객체의 데이터는 테이블스페이스의 하나 이상의 데이터 파일에 물리적으로 포함된다. 일부 객체(테이블, 인덱스, 클러스터 등)의 경우, 데이터베이스 관리자는 오라클 RDBMS가 테이블스페이스의 데이터 파일 내에서 객체에 할당하는 디스크 공간의 양을 지정할 수 있다.
스키마와 테이블스페이스 사이에는 필연적인 관계가 없다. 테이블스페이스는 서로 다른 스키마의 객체를 포함할 수 있으며, 단일 스키마의 객체는 서로 다른 테이블스페이스에 존재할 수 있다. 그러나, 오라클 데이터베이스의 특수성은 비균질 시퀀스 차이의 플랫폼 인식을 강제하며, 이는 가상화된 애플리케이션에서 중요한 제한 요소로 간주된다.[4]
4. 2. Microsoft SQL Server
Microsoft SQL Server에서 모든 데이터베이스의 기본 스키마는 dbo 스키마이다.[5]5. 3층 스키마 접근 방식
3층 스키마(Three schema approach)는 데이터베이스 스키마를 세 가지 관점으로 나누어 보는 방식이다. 여기에는 개념-논리-물리 3단계 방식과 외부-개념-내부 3단계 방식이 있다.[1]
ANSI/X3/SPARC (SPARC는 표준 계획 및 요구 사항 위원회를 의미)에서는 개념 스키마, 외부 스키마, 내부 스키마의 3계층 스키마를 사용한다. 범용 컴퓨터에서 많이 사용되는 COBOL을 개발한 CODASYL에서는 부 스키마, 스키마, 기억 스키마의 3가지로 정의한다.[1]
외부 스키마는 사용자가 보는 데이터베이스의 정의, 개념 스키마는 논리적인 정의, 내부 스키마는 데이터베이스의 물리적인 정의를 의미한다.[1]
ANSI/X3/SPARC에서의 용법 | 좌측 내용 설명 | 대응하는 CODASYL의 정의 |
---|---|---|
외부 스키마 | 개념 데이터에서 필요한 정보를 추출한 것 (RDB라면 View 등에 해당) | 부 스키마 |
개념 스키마 | DB 상의 논리 데이터 (RDB라면 테이블에 해당) | 스키마 |
내부 스키마 | DB에서 데이터를 관리하는 방법 | 기억 스키마 |
5. 1. 개념-논리-물리 방식
삼층 스키마(Three schema approach)는 데이터베이스 스키마를 세 가지 관점으로 나누어 보는 방식이다. 여기에는 개념-논리-물리 3단계 방식과 외부-개념-내부 3단계 방식이 있다.- 개념 스키마: 개념과 개념 간의 관계를 정의한다. 데이터 모델을 추상화하여 개념과 개념 간의 관계를 정의한다.
- 논리 스키마: 실체와 속성, 실체 간의 관계를 정의한다. 관계형 모델의 경우 관계(테이블)와 튜플(튜플, 행), 객체 지향 모델의 경우 클래스, 또는 XML 태그 등을 사용하여 기술되는 데이터 모델이다.
- 물리 스키마: 논리 스키마를 실제로 어떻게 구현할지 구체적으로 나타낸다. 개별 데이터베이스 관리 제품에서의 데이터 저장 방식을 구체적으로 정의한다.[1]
5. 1. 1. 개념 스키마
'''개념 스키마''' (영어: '''Conceptual schema''')는 데이터베이스에 필요한 정보를 데이터 모델에 의해 추상화하고, 그 추상화된 개념과 개념 간의 관계를 정의한 기술이다. 대상이 되는 조직의 의미론을 설명하며, 그 성질에 대해 일련의 논리적 표명을 나타낸다. 특히, 조직 (실체 클래스)의 유의미한 것과, 이에 부수하는 정보, 특성 (속성), 그리고 이들 사이의 관련을 설명한다.조직의 의미론을 나타내는 것이며 데이터베이스 설계는 아니므로, 그 추상 레벨은 다양하다. ANSI의 3계층 스키마 아키텍처에서는, 각 이용자 고유의 관점을 반영한 개념 스키마를 "외부 스키마"라고 부른다. 반대로 이들을 집약한 것이 "개념 스키마"로 여겨진다. 데이터 모델은 각 이용자의 관점에서는 고정적이며, 그것만으로는 유연성이 부족한 경향이 있다. 그 개인의 세계관이 바뀌면 모델도 변경을 불가피하게 된다. 개념 스키마는 보다 추상적이며, 본질적이다.
개념 스키마에는 객체 지향에서 말하는 상속에 상당하는 것도 있다. 어떤 실체 클래스의 인스턴스의 집합은, 적당한 하위 실체 클래스로 분류할 수 있다. 따라서, 어떤 하위 실체 클래스의 인스턴스는, 상위 실체 클래스의 인스턴스이기도 하다. 상위 실체 클래스의 인스턴스는, 어떤 하위 실체 클래스의 인스턴스이기도 하다.
기본형/파생형 관계는 "배타적 관계"인 경우도 있다. 방법론적으로, 어떤 기본형의 인스턴스가 어느 하나의 파생형의 인스턴스여야만 하는 경우도 있다. 마찬가지로, 포괄적 관계인 경우도 있다. 포괄적인 경우, 어떤 기본형의 인스턴스는 반드시 어떤 파생형의 인스턴스여야만 한다.
5. 1. 2. 논리 스키마
관계형 모델의 경우 관계(테이블)와 튜플(튜플, 행), 객체 지향 모델의 경우 클래스, 또는 XML 태그 등을 사용하여 기술되는 데이터 모델이다. 개념 스키마는 구현 기술을 전혀 고려하지 않고 조직의 의미론을 기술하는 것과는 대조적이다.데이터베이스를 작성하는 경우, 논리 스키마를 작성한 후 거기에서 물리 스키마를 작성한다.
5. 1. 3. 물리 스키마
ANSI의 4계층 스키마 아키텍처에서는 "내부 스키마"라고 부른다. 논리 스키마는 데이터의 논리적 표현을 정의하지만, 이 단계에서는 구체적으로 스토리지 (보조 기억 장치)에 데이터가 어떻게 저장되는지 등의 부분은 고려되지 않는다. 물리 스키마는 개별 데이터베이스 관리 제품에서의 데이터 저장 방식을 구체적으로 정의한다.[1]5. 2. 기타 방식
삼층 스키마(Three schema approach)에는 몇 가지 유형이 있다. 예를 들어, 개념-논리-물리 3가지로 나누는 것과 외부-개념-내부 3가지로 나누는 것이 있다. ANSI/X3/SPARC (SPARC는 표준 계획 및 요구 사항 위원회를 의미)에서는 개념 스키마, 외부 스키마, 내부 스키마의 3계층 스키마를 사용한다. 범용 컴퓨터에서 많이 사용되는 COBOL을 개발한 CODASYL에서는 부 스키마, 스키마, 기억 스키마의 3가지로 정의한다.[1]외부 스키마는 사용자가 보는 데이터베이스의 정의, 개념 스키마는 논리적인 정의, 내부 스키마는 데이터베이스의 물리적인 정의를 의미한다.[1]
ANSI/X3/SPARC에서의 용법 | 좌측 내용 설명 | 대응하는 CODASYL의 정의 |
---|---|---|
외부 스키마 | 개념 데이터에서 필요한 정보를 추출한 것 (RDB라면 View 등에 해당) | sub-schema (부 스키마) |
개념 스키마 | DB 상의 논리 데이터 (RDB라면 테이블에 해당) | schema (스키마) |
내부 스키마 | DB에서 데이터를 관리하는 방법 | storage schema (기억 스키마) |
참조
[1]
서적
Oracle Database Concepts 11g Release 2 (11.2)
https://web.archive.[...]
Oracle Corporation
2010-02
[2]
서적
Oracle Database Concepts 10g Release 2 (10.2)Part Number B14220-02
http://docs.oracle.c[...]
[3]
서적
Oracle Database Concepts 11g Release 2 (11.2)
https://web.archive.[...]
Oracle Corporation
2010-02
[4]
간행물
Virtualization performance: perspectives and challenges ahead
2010
[5]
웹사이트
Ownership and user-schema separation in SQL Server - SQL Server
https://learn.micros[...]
2024-05-09
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com